| Автор перевода: Майкл "Antares" Клишин | Предыдущая | Следующая | Оглавление |
Flash Player 6; функциональность изменилось, начиная с Flash Player 7.
my_lc.domain(): String
Нет.
Строка, отображающая домен, в котором находится данный SWF файл; для более подробной информации смотри раздел Описание.
Метод; возвращает строковое представление домена, в котором находится данный SWF файл.
В SWF файлах, опубликованных под Flash Player 6, возвращаемая строка указывает на над-домен текущего SWF файла. Например, если SWF файл расположен в домене www.macromedia.com, метод вернет "macromedia.com".
В роликах, опубликованных под Flash Player 7 или более поздних версий, возвращаемая строка указывает на домен, в котором находится SWF файл. Например, если SWF файл расположен в домене www.macromedia.com, метод вернет "www.macromedia.com".
Если текущий SWF файл является локальным на данном компьютере, метод вернет "localhost".
Наиболее часто этот метод используется для передачи домена объекта-отправителя в качестве параметра методу, который Вы собираетесь вызвать или же для передачи его методу LocalConnection.allowDomain для разрешение дляступа с данного домена. Если Вы используете взаимодействие объектов LocalConnection из одного домена, использовать этот метод смысла не имеет.
В следующем примере объект-получатель разрешает вызов своих методов только объектам в SWF файлах из того же домена или домена macromedia.com:
// Если если оба ролика опубликованы под Flash Player 6,
// используем над-домен
var my_lc:LocalConnection = new LocalConnection();
my_lc.allowDomain = function(sendingDomain):String{
return (sendingDomain==this.domain() || sendingDomain=="macromedia.com");
}
// Если один из роликов SWF файл опубликован для Flash Player 7 или более поздних версий,
// используем непосредственно домен. В этом случае, вызовы из SWF файла из домена
// www.macromedia.com будут приняты, но из ролика из другого домена
// (например, livedocs.macromedia.com) не сработают.
var my_lc:LocalConnection = new LocalConnection();
my_lc.allowDomain = function(sendingDomain):String{
return (sendingDomain==this.domain() || sendingDomain=="www.macromedia.com");
}
В следующем примере объект-отправитель в SWF файле в домене www.yourdomain.com вызывает метод у объекта-получателя в SWF файле из домена www.mydomain.com. SWF файл с объектом-отправителем передает домен, в котором он расположен, поэтому объект-получатель может вернуть значение определенному адресу. Также указывается, что объект-отправитель будет принимать вызовы обратно только от объектов в роликах из домена mydomain.com.
Подробнее последовательность действий описана ниже:
"sum" (строка 11). Flash Player преобразует имя соединения в "mydomain.com:sum" (смотри LocalConnection.connect())."result" (строка 67). При этом вызовы разрешаются только для файлов из домена mydomain.com (строки с 51 по 53). aSum объекта-получателя по соединению "mydomain.com:sum" (строка 68) и передает методу следующие параметры: свой над-домен, имя соединение для ответа ("result") и значения, используемые методом aSum (123 и 456).aSum (строка 6) вызывается с параметрами: sender = "mydomain.com:result", replyMethod = "aResult", n1 = 123 и n2 = 456. Затем исполняется следующий код:
this.send("mydomain.com:result", "aResult", (123 + 456));
aResult (строка 54) выводит результат работы метода aSum (579).
// Код в SWF файле-получателе, http://www.mydomain.com/folder/movie.swf
1 var aLocalConnection:LocalConnection = new LocalConnection();
2 aLocalConnection.allowDomain = function()
3 {
// Позволяем принимать сообщения из любого домена
4 return true;
5 }
6 aLocalConnection.aSum = function(sender, replyMethod, n1, n2)
7 {
8 this.send(sender, replyMethod, (n1 + n2));
9 }
10
11 aLocalConnection.connect("sum");
// Код в объекте-отправителе, http://www.Выrdomain.com/folder/movie.swf
50 var lc:LocalConnection = new LocalConnection();
51 lc.allowDomain = function(aDomain) {
// Разрешаем исполнение запросов только из домена mydomain.com
52 return (aDomain == "mydomain.com");
53 }
54 lc.aResult = function(aParam) {
55 trace("The sum is " + aParam);
56 }
// determine our domain and see если we need to truncate it
57 var channelDomain:String = lc.domain();
58 если (getVersion() >= 7 && this.getSWFVersion() >= 7)
59 {
// split domain name into elements
60 var domainArray:Array = channelDomain.split(".");
// если more than two elements are found,
// chop off first element to create superdomain
61 если (domainArray.length > 2)
62 {
63 domainArray.shеслиt();
64 channelDomain = domainArray.join(".");
65 }
66 }
67 lc.connect("result");
68 lc.send("mydomain.com:sum", "aSum", channelDomain + ':' + "result",
"aResult", 123, 456);
LocalConnection.allowDomain
| Посмотреть комментарии LiveDocs | Предыдущая | Следующая | Оглавление | |